Skip to content

Linux 知识体系导图

一、Linux基础深入(入门与进阶)

1. Linux核心基础

  • 定义:Linux是一套免费使用、自由传播的类Unix操作系统,基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统,核心由Linus Torvalds开发

  • 核心特点(常见要点):开源免费、稳定性强(长时间运行不宕机)、安全性高(权限管理严格)、可定制性强(内核可裁剪)、多用户多任务、跨平台(支持x86、ARM等架构)

  • Linux与Windows区别(重点):

    • 内核与开源:Linux开源,内核可定制;Windows闭源,内核不可修改

    • 用户管理:Linux多用户,权限分级严格;Windows单用户为主,权限管理较宽松

    • 运行稳定性:Linux稳定性极强,适合服务器部署;Windows易卡顿、宕机,适合桌面端

    • 操作方式:Linux以命令行(CLI)为主,图形界面(GUI)为辅;Windows以图形界面为主,命令行为辅

    • 适用场景:Linux适合服务器(前端部署、后端服务);Windows适合桌面办公、普通用户使用

  • 常用Linux发行版(前端必备):CentOS(服务器主流,稳定,已停止维护,被AlmaLinux、Rocky Linux替代)、Ubuntu(桌面+服务器,易用,适合开发测试)、Debian(稳定,开源社区活跃)、RedHat(企业级,收费,有官方支持)

2. Linux文件系统(核心重点)

  • 文件系统结构(重点):Linux采用树状目录结构,根目录为/,所有文件和目录都挂载在根目录下

    • 核心目录:/root(root用户主目录)、/home(普通用户主目录)、/etc(系统配置文件目录,如nginx、ssh配置)、/var(可变文件目录,日志、缓存等)、/usr(用户程序目录)、/bin(常用命令目录,如ls、cd)、/sbin(系统管理命令目录,如reboot、shutdown)、/tmp(临时文件目录,重启后清空)
  • 文件类型(常见):普通文件(-,如txt、js、css)、目录文件(d,如/home)、链接文件(l,类似Windows快捷方式)、设备文件(b块设备、c字符设备,如硬盘、键盘)、管道文件(p)、套接字文件(s)

  • 文件路径:绝对路径(从/开始,如/etc/nginx/nginx.conf)、相对路径(从当前目录开始,如./test.txt、../src)

  • 文件权限(重点):

    • 权限表示:r(读,4)、w(写,2)、x(执行,1),分别对应所有者(u)、所属组(g)、其他用户(o),如rwxr-xr--(所有者可读可写可执行,所属组可读可执行,其他用户只读)

    • 权限修改:chmod(修改文件/目录权限,如chmod 755 test.sh、chmod u+x test.sh)

    • 所有者/所属组修改:chown(修改所有者,如chown root:root test.txt)、chgrp(修改所属组)

3. Linux常用基础命令(实战必备)

  • 目录操作(常见):

    • cd:切换目录(cd /etc、cd ~、cd ..、cd -)

    • ls:查看目录内容(ls -l(详细信息)、ls -a(显示隐藏文件)、ls -h(人性化显示大小))

    • mkdir:创建目录(mkdir test、mkdir -p a/b/c(递归创建))

    • rmdir:删除空目录(rmdir test)、rm -rf:强制删除目录/文件(慎用,如rm -rf test)

    • pwd:查看当前工作目录路径

  • 文件操作(常见):

    • touch:创建空文件(touch test.txt)

    • cp:复制文件/目录(cp test.txt /home、cp -r a /home(复制目录))

    • mv:移动/重命名文件/目录(mv test.txt /home、mv test.txt test1.txt)

    • rm:删除文件(rm test.txt、rm -f test.txt(强制删除))

    • cat:查看文件内容(cat test.txt)、more/less:分页查看文件(less /etc/profile)

    • tail:查看文件末尾内容(tail -f /var/log/nginx/error.log(实时监控日志)、tail -n 10 test.txt(查看最后10行))

    • head:查看文件开头内容(head -n 5 test.txt)

    • vi/vim:编辑文件(vim test.txt,i插入、esc退出插入、:w保存、:q退出、:wq保存退出、:q!强制退出)

  • 其他基础命令:

    • pwd:查看当前工作目录

    • clear:清空终端屏幕

    • history:查看命令历史(history 10(查看最近10条)、!100(执行第100条命令))

    • man:查看命令手册(man ls)

二、Linux进阶操作(进阶核心)

1. 文本处理命令(前端部署/日志分析必备)

  • grep:文本搜索(重点),格式:grep [选项] 搜索内容 文件

    • 常用选项:-i(忽略大小写)、-n(显示行号)、-v(反向匹配,排除指定内容)、-r(递归搜索目录下所有文件)

    • 实战场景:搜索日志中的错误信息(grep -n "error" /var/log/nginx/error.log)、搜索特定关键词的文件(grep -r "localhost" /etc/)

  • sed:文本替换/编辑(常见),格式:sed [选项] '命令' 文件

    • 常用命令:s(替换,如sed 's/old/new/g' test.txt(全局替换))、d(删除行,如sed '3d' test.txt(删除第3行))

    • 实战场景:批量替换配置文件中的内容(sed -i 's/80/8080/g' /etc/nginx/nginx.conf)

  • awk:文本分析/提取(高级重点),格式:awk '条件 {动作}' 文件

    • 常用场景:提取日志中的IP地址(awk '{print $1}' /var/log/nginx/access.log)、按条件筛选内容(awk '$3>100 {print $0}' test.txt)
  • cut:提取文本列(如cut -d ' ' -f 1 test.txt(以空格为分隔符,提取第1列))

  • sort:文本排序(sort test.txt、sort -n test.txt(按数字排序)、sort -r test.txt(反向排序))

  • uniq:去除重复行(uniq test.txt、uniq -c test.txt(统计重复次数))

2. 用户与权限管理(进阶重点)

  • 用户管理命令:

    • useradd:创建用户(useradd test(创建test用户)、useradd -m test(创建用户并生成主目录))

    • passwd:设置用户密码(passwd test(为test用户设置密码))

    • userdel:删除用户(userdel test、userdel -r test(删除用户及主目录))

    • su:切换用户(su test(切换到test用户)、su - root(切换到root用户,加载root环境变量))

    • sudo:以root权限执行命令(sudo nginx -s reload,需配置sudoers文件)

  • 用户组管理:

    • groupadd:创建用户组(groupadd testGroup)

    • groupdel:删除用户组(groupdel testGroup)

    • usermod:将用户加入用户组(usermod -g testGroup test)

  • sudoers配置(重点):

    • 配置文件:/etc/sudoers,需用visudo命令编辑(避免语法错误)

    • 配置示例:test ALL=(ALL) ALL(允许test用户执行所有root命令)

  • 常见问题:权限不足无法执行命令(解决方案:切换root用户、使用sudo、修改文件权限)、sudo命令报错(配置sudoers文件错误)

3. 进程与服务管理(前端部署必备,重点)

  • 进程相关命令:

    • ps:查看进程(ps -ef(查看所有进程)、ps aux(查看进程详细信息)、ps -ef | grep nginx(查看nginx进程))

    • top:实时查看进程占用(CPU、内存占用,按q退出)

    • kill:终止进程(kill 进程ID(PID)、kill -9 进程ID(强制终止,慎用))

    • pkill:根据进程名终止进程(pkill nginx)

    • pgrep:根据进程名查找进程ID(pgrep nginx)

  • 服务管理命令(systemctl,主流):

    • 启动服务:systemctl start nginx(启动nginx服务)

    • 停止服务:systemctl stop nginx

    • 重启服务:systemctl restart nginx

    • 查看服务状态:systemctl status nginx

    • 设置开机自启:systemctl enable nginx

    • 关闭开机自启:systemctl disable nginx

  • 旧版服务管理(service,兼容旧系统):service nginx start/stop/restart/status

  • 实战场景:查看nginx进程是否运行、强制终止异常进程、设置前端部署的服务开机自启

4. 网络管理(进阶重点)

  • 网络基础命令:

    • ifconfig:查看/配置网卡信息(ip addr 替代方案,查看IP地址、网卡状态)

    • ping:测试网络连通性(ping www.baidu.com、ping 127.0.0.1)

    • netstat:查看网络连接(netstat -tulnp | grep 80(查看80端口占用)、netstat -an(查看所有网络连接))

    • ss:替代netstat,查看网络连接(ss -tulnp | grep nginx)

    • curl:发送HTTP请求(curl http://127\.0\.0\.1:80、curl -I http://www\.baidu\.com(查看响应头))

    • wget:下载文件(wget https://xxx\.com/test\.zip)

  • 防火墙配置(重点,前端部署必懂):

    • firewalld(主流):

      • 查看防火墙状态:systemctl status firewalld

      • 启动/停止防火墙:systemctl start/stop firewalld

      • 开放端口:firewall-cmd --add-port=80/tcp --permanent(永久开放80端口)、firewall-cmd --reload(重新加载配置)

      • 查看开放端口:firewall-cmd --list-ports

    • iptables(旧版):iptables -A INPUT -p tcp --dport 80 -j ACCEPT(开放80端口)

  • 常见问题:服务器端口无法访问(排查:防火墙未开放端口、进程未监听端口、网络连通性问题)

三、Linux实战操作(前端部署相关 · 进阶要点)

1. 前端项目部署实战(核心重点)

  • 部署流程(Vue/React项目):

    • 步骤1:本地打包项目(npm run build),得到dist目录

    • 步骤2:将dist目录上传到Linux服务器(工具:xftp、scp命令,如scp -r dist root@192.168.1.100:/home)

    • 步骤3:配置Nginx(修改/etc/nginx/nginx.conf),指向dist目录,配置反向代理解决跨域

    • 步骤4:启动/重启Nginx服务(systemctl restart nginx),开放对应端口(如80、443)

    • 步骤5:测试访问(浏览器输入服务器IP/域名,查看项目是否正常运行)

  • 常用上传命令(scp):

    • 本地文件上传到服务器:scp 本地文件路径 root@服务器IP:服务器路径(如scp test.txt root@192.168.1.100:/home)

    • 本地目录上传到服务器:scp -r 本地目录路径 root@服务器IP:服务器路径(如scp -r dist root@192.168.1.100:/home)

  • 部署问题排查:

    • 项目访问404:Nginx配置错误(root路径错误、location匹配规则错误)、dist目录权限不足

    • 跨域问题:Nginx未配置反向代理、反向代理配置错误(proxy_pass路径错误)

    • 页面空白:静态资源路径错误(Vue/React打包时publicPath配置错误)

2. 日志分析与问题排查(高级必备)

  • 常见日志路径:

    • Nginx日志:/var/log/nginx/access.log(访问日志,记录请求信息)、/var/log/nginx/error.log(错误日志,记录异常信息)

    • 系统日志:/var/log/messages(系统全局日志)、/var/log/secure(安全日志,如登录信息)

  • 日志分析实战:

    • 查看最近10条错误日志:tail -n 10 /var/log/nginx/error.log

    • 实时监控错误日志:tail -f /var/log/nginx/error.log

    • 统计访问最多的IP:awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10

    • 筛选404请求:grep "404" /var/log/nginx/access.log

  • 常见问题排查思路:查看日志→定位错误原因→针对性解决(如权限不足→修改权限、配置错误→修改配置、进程异常→重启进程)

3. 压缩与解压命令(实战必备)

  • zip格式:

    • 压缩:zip -r test.zip test/(将test目录压缩为test.zip)

    • 解压:unzip test.zip(解压到当前目录)、unzip test.zip -d /home/test(解压到指定目录)

  • tar格式(常用):

    • 压缩:tar -zcvf test.tar.gz test/(将test目录压缩为test.tar.gz)

    • 解压:tar -zxvf test.tar.gz(解压到当前目录)、tar -zxvf test.tar.gz -C /home/test(解压到指定目录)

  • 实战场景:解压前端打包后的压缩包、压缩日志文件便于备份

4. 定时任务(crontab,高级拓展)

  • 核心命令:crontab -e(编辑定时任务)、crontab -l(查看定时任务)、crontab -r(删除定时任务)

  • 定时任务格式(重点):分 时 日 月 周 命令(如0 2 * * * /home/backup.sh(每天凌晨2点执行备份脚本))

  • 实战场景:定时备份前端项目、定时清理日志文件(避免日志过大占用磁盘)

  • 示例:每天凌晨3点清理Nginx日志(0 3 * * * rm -rf /var/log/nginx/access.log)

四、Linux 性能优化与安全

1. Linux性能优化(重点)

  • CPU优化:

    • 查看CPU占用:top、ps aux --sort=-%cpu(按CPU占用排序)

    • 优化方案:终止异常高占用进程(kill -9 PID)、合理分配进程优先级(nice、renice命令)

  • 内存优化:

    • 查看内存占用:free -h(人性化显示内存使用情况)、top

    • 优化方案:释放缓存(echo 1 > /proc/sys/vm/drop_caches)、关闭无用服务、避免内存泄漏

  • 磁盘优化:

    • 查看磁盘占用:df -h(查看磁盘剩余空间)、du -sh /home(查看目录占用大小)

    • 优化方案:删除无用文件、清理日志、分区合理规划(如/var目录单独分区,避免日志占满根目录)

  • 网络优化:

    • 优化TCP连接:调整TCP超时时间、开启TCP复用

    • 优化Nginx:调整worker_processes、worker_connections(结合CPU核心数)

2. Linux安全配置(高级拓展)

  • 密码安全:设置复杂密码、定期修改密码、禁止root用户远程登录(修改/etc/ssh/sshd_config,PermitRootLogin no)

  • SSH安全:

    • 修改SSH默认端口(22端口改为其他端口,如2222,修改/etc/ssh/sshd_config)

    • 禁用密码登录,启用密钥登录(更安全,避免密码被暴力破解)

  • 防火墙安全:只开放必要端口(如80、443、2222),关闭无用端口

  • 文件权限安全:重要配置文件(如/etc/nginx/nginx.conf、/etc/sudoers)设置为只读权限(chmod 600)